#!/bin/bash

### 批量docker镜像的_脚本
# 获取到 "image:tag" 格式的镜像名
IMG_NAME=`docker images | grep -v TAG | awk '{print $1":"$2}'`
# echo $IMG_NAME | awk '{gsub(/ /,"\n",$0)} {print $0}'

# 如果原本镜像名中存在 "/" 是需要去掉的

# 存放目录
dirput="tar"
# 定义镜像存放目录
DIR="image_tar"
#  判断存放目录是否存在
if [ ! -d "$dirput" ]; then
  echo -e "${dirput} 不存在"
  mkdir -p "$dirput"
  echo -e "${dirput} 已创建"
else
  echo -e "${dirput} 已存在"
fi
# 切换
cd ${dirput} || exit
# 获取当前目录
directory=$(pwd)
#  创建保存文件
touch "./image.txt"
# 定义保存文件
input="$directory/image.txt"

echo "请使用 docker load -i *.tar 命令 批量导出镜像脚本" >> "${input}"

if [ ! -d "$DIR" ]; then
  echo -e "${DIR} 不存在"
  mkdir -p "$DIR"
  echo -e "${DIR} 已创建"
else
  echo -e "${DIR} 已存在"
fi
echo ""

c=0
for IMAGE in $IMG_NAME
do
  c=$((c+1))

  echo -e "正在保存 ${IMAGE}"
  echo -e "正在保存到 ${dirput}/${DIR}/${c}_${IMAGE}.tar"
  docker save "${IMAGE}" -o "${DIR}/${c}_${IMAGE}.tar"
  echo "${c}:保存  ${DIR}/${IMAGE}.tar" >> "${input}"
  echo ""
done
